#ifndef _CEDITOR_H
#define _CEDITOR_H

#include <SDL/SDL.h>

#include <stdio.h>
#include "recursos.h"
#include "escenario.h"
#include "pantalla.h"
#include "entidad.h"
#include "control.h"
#include "texto.h"

/*---------------------------------
	 Edition mode types
	 Floor Brush, platform brush, etc 
---------------------------------*/
typedef enum 
{
	MODO_PINCEL_SUELO,
	MODO_PINCEL_PLATAFORMA,
	MODO_BORRAR,
	MODO_OBJETOS,
	MODO_ENEMIGOS
	
}EModoEdicion;


/*---------------------------------
	Implemets level editor
---------------------------------*/
class CEditor
{
	CRecursos 	m_Recursos;
	TEscenario 	m_tEscenario;
	CEscenario 	m_Escenario;
	CPantalla  	*m_Pantalla;
	CEntidad   	m_EntidadDummy;
	Control		m_Controles;
	CTexto 		m_Fuente;
	EModoEdicion m_ModoEdicionActual;
	//FILE		*m_pFichero;
	
	char m_sDirectorioBase[255];
	char m_sDirectorioFase[255];	
	
public:

	CEditor();
	~CEditor();
	Bool Inicializar(CPantalla *pPantalla,char szNombreArchivo[255]="Nivel_Nuevo.lvl");
	void Editar();
	void Actualizar();
	void Liberar();
	void GrabarEscenario(char szNombreArchivo[255]="Nivel_Nuevo.lvl");
	void ResetearEscenario();
	void AniadirBloque(int x,int y);
	void AniadirBloquePlataforma(int x,int y);
	void EliminarBloque(int x,int y);
	void EliminarBloquePlataforma(int x,int y);
	void DibujarCursor(int x,int y);	
	
};

#endif
